﻿using BoldBrick.OneIntranet.HR.DataObjects.ContentTypes.CandidatesContentTypes;
using BoldBrick.OneIntranet.HR.DataObjects.ContentTypes.PositionsContentTypes;
using BoldBrick.OneIntranet.HR.DataObjects.ContentTypes.TasksContentTypes;
using BoldBrick.OneIntranet.HR.DataObjects.ContentTypes.WorkflowsContentTypes;

namespace BoldBrick.OneIntranet.HR.DataObjects.ContentTypes
{
	/// <summary>
	/// Metadata class for content types
	/// </summary>
	public static class ContentTypes
	{
		#region ------ Positions ------------------------------------------------------------------

		/// <summary>
		/// "Position" content type metadata object
		/// </summary>
		public readonly static PositionContentType PositionContentType = new PositionContentType();
		

		#endregion

		#region ------ Candidates -----------------------------------------------------------------

		/// <summary>
		/// "Candidate" content type metadata object
		/// </summary>
		public readonly static CandidateContentType CandidateContentType = new CandidateContentType();

		/// <summary>
		/// "Result" content type metadata object
		/// </summary>
		public readonly static ResultContentType ResultContentType = new ResultContentType();

		/// <summary>
		/// "CV Document" content type metadata object
		/// </summary>
		public readonly static CVDocumentContentType CVDocumentContentType = new CVDocumentContentType();

		/// <summary>
		/// "Test Result" content type metadata object
		/// </summary>
		public readonly static TestResultContentType TestResultContentType = new TestResultContentType();

		/// <summary>
		/// "Interview Result" content type metadata object
		/// </summary>
		public readonly static InterviewResultContentType InterviewResultContentType = new InterviewResultContentType();

		/// <summary>
		/// "Reference Call Result" content type metadata object
		/// </summary>
		public readonly static ReferenceCallResultContentType ReferenceCallResultContentType = new ReferenceCallResultContentType();
		
		/// <summary>
		/// "Final Decision Result" content type metadata object
		/// </summary>
		public readonly static FinalDecisionResultContentType FinalDecisionResultContentType = new FinalDecisionResultContentType();
		
		/// <summary>
		/// "Review Result" content type metadata object
		/// </summary>
		public readonly static ReviewResultContentType ReviewResultContentType = new ReviewResultContentType();
		
		/// <summary>
		/// "Candidate Decision Result" content type metadata object
		/// </summary>
		public readonly static CandidateDecisionResultContentType CandidateDecisionResultContentType = new CandidateDecisionResultContentType();
		
		/// <summary>
		/// "Schedule Interview Result" content type metadata object
		/// </summary>
		public readonly static ScheduleInterviewResultContentType ScheduleInterviewResultContentType = new ScheduleInterviewResultContentType();

		#endregion

		#region ------ Workflows ------------------------------------------------------------------

		/// <summary>
		/// "Workflow" content type metadata object
		/// </summary>
		public readonly static WorkflowContentType WorkflowContentType = new WorkflowContentType();

		/// <summary>
		/// "Workflow" content type metadata object
		/// </summary>
		public readonly static WorkflowStepContentType WorkflowStepContentType = new WorkflowStepContentType();

		/// <summary>
		/// "Interview Workflow Step" content type metadata object
		/// </summary>
		public readonly static InterviewWorkflowStepContentType InterviewWorkflowStepContentType = new InterviewWorkflowStepContentType();

		/// <summary>
		/// "Reference Call Workflow Step" content type metadata object
		/// </summary>
		public readonly static ReferenceCallWorkflowStepContentType ReferenceCallWorkflowStepContentType = new ReferenceCallWorkflowStepContentType();

		/// <summary>
		/// "Test Workflow Step" content type metadata object
		/// </summary>
		public readonly static TestWorkflowStepContentType TestWorkflowStepContentType = new TestWorkflowStepContentType();

		/// <summary>
		/// "Final Decision Workflow Step" content type metadata object
		/// </summary>
		public readonly static FinalDecisionWorkflowStepContentType FinalDecisionWorkflowStepContentType = new FinalDecisionWorkflowStepContentType();
		
		/// <summary>
		/// "Review Workflow Step" content type metadata object
		/// </summary>
		public readonly static ReviewWorkflowStepContentType ReviewWorkflowStepContentType = new ReviewWorkflowStepContentType();

		/// <summary>
		/// "Schedule Interview Workflow Step" content type metadata object
		/// </summary>
		public readonly static ScheduleInterviewWorkflowStepContentType ScheduleInterviewWorkflowStepContentType = new ScheduleInterviewWorkflowStepContentType();

		#endregion

		#region ------ Tasks ----------------------------------------------------------------------

		/// <summary>
		/// "HR Task" content type metadata object
		/// </summary>
		public readonly static HRTaskContentType HRTaskContentType = new HRTaskContentType();
		
		/// <summary>
		/// "Interview Task" content type metadata object
		/// </summary>
		public readonly static InterviewTaskContentType InterviewTaskContentType = new InterviewTaskContentType();
		
		/// <summary>
		/// "Test Task" content type metadata object
		/// </summary>
		public readonly static TestTaskContentType TestTaskContentType = new TestTaskContentType();
		
		/// <summary>
		/// "Reference Call Task" content type metadata object
		/// </summary>
		public readonly static ReferenceCallTaskContentType ReferenceCallTaskContentType = new ReferenceCallTaskContentType();
		
		/// <summary>
		/// "Final Decision Task" content type metadata object
		/// </summary>
		public readonly static FinalDecisionTaskContentType FinalDecisionTaskContentType = new FinalDecisionTaskContentType();
		
		/// <summary>
		/// "Review Task" content type metadata object
		/// </summary>
		public readonly static ReviewTaskContentType ReviewTaskContentType = new ReviewTaskContentType();
		
		/// <summary>
		/// "Schedule Interview Task" content type metadata object
		/// </summary>
		public readonly static ScheduleInterviewTaskContentType ScheduleInterviewTaskContentType = new ScheduleInterviewTaskContentType();

		#endregion
	}
}
